﻿using System;
using System.IO;

namespace GingerGL.IO
{    
    //---------------------------------------------------------------//
    /// <summary>
    /// File System Interface
    /// </summary>
    public interface IFileSystem
    {
        /// <summary>
        /// Returns the stream of a certain file within the file system. 
        /// </summary>
        Stream Open(string filename);
        /// <summary>
        /// Returns true if a file with a certain name exists within the file system.
        /// </summary>
        bool Exists(string filename);
        /// <summary>
        /// Returns the full path for a certain file name.
        /// </summary>
        string GetFullPath(string filename);
        /// <summary>
        /// Returns the list of files contained by the file system.
        /// </summary>
        string[] GetFiles(string path);
        /// <summary>
        /// Returns the list of files contained by the file system.
        /// </summary>
        string[] GetFiles(string path, string pattern);
        /// <summary>
        /// Returns the list of directories contained by the file system
        /// </summary>
        string[] GetDirectories(string path);
        /// <summary>
        /// Returns the list of directories contained by the file system
        /// </summary>
        string[] GetDirectories(string path, string pattern);
    }
    //---------------------------------------------------------------//
}
